package board.model;

import java.sql.SQLException;
import java.util.List;

public class BoardService {
	private BoardDao boardDao;
	public BoardService(BoardDao boardDao){
		this.boardDao = boardDao;
	}
	public ListVO boardList(String pageNo) throws SQLException{
		if(pageNo==null||pageNo==""){
			pageNo="1";
		}
		List<BoardVO> list=boardDao.boardList(pageNo);
		int total=boardDao.boardTotalContents();
		PagingBean paging=new PagingBean(total,Integer.parseInt(pageNo));
		ListVO lvo=new ListVO(list,paging);
		return lvo;
	}
	// 게시물 삭제 서비스 0424 임한희
	public void boardDeleteContent(int replyrefno, String no) throws SQLException{
		boardDao.boardReplyAllDelete(replyrefno);
		boardDao.boardDeleteContent(no);
	}
	// 사진 게시물 클릭했을떄 보여주는 서비스 0426 박정형
	public BoardVO boardContentView(String no) throws SQLException{
		boardDao.boardUpdateCount(no);
		return boardDao.boardContentView(no);
	 }
	// 게시물 수정 서비스 0426박정형 
	public BoardVO boardUpdate(BoardVO bvo) throws SQLException{
		boardDao.boardUpdate(bvo);
		String no=Integer.toString(bvo.getNo());
		return boardDao.boardContentView(no);
	 }
	// 리플 작성하는 서비스 0430 임한희
	public void boardReplyWriter(BoardReplyVO brvo) throws SQLException{
		//System.out.println(brvo.getReplyrefno());
		int replyCount = boardDao.boardReplyMaxCount(brvo.getReplyrefno());
		if(replyCount==0){
			brvo.setReplystep(1);
			boardDao.boardReplyWriter(brvo);
		}else{
			brvo.setReplystep(replyCount+1);
			boardDao.boardReplyWriter(brvo);
		}
	}
	// 리플들 읽어오는 서비스 0430 임한희
	public List<BoardReplyVO> boardReplyView(int replyrefno) throws SQLException{
		return boardDao.boardReplyView(replyrefno);
	}
	// 리플 삭제하는 서비스 0501 임한희
	public void boardReplyDelete(int replyno) throws SQLException{
		boardDao.boardReplyDelete(replyno);
	}
	// 게시물 수정폼으로 데이터 가져오기 위한 서비스 0507 임한희
	public BoardVO boardUpdateView(String no) throws SQLException{
		return boardDao.boardUpdateView(no);
	}
	//어플로 게시글 작성 서비스
	public void boardWrite(BoardVO bvo) throws SQLException{
		boardDao.boardWrite(bvo);
	}
	// 리스트 대신에 구글맵으로 표시하고 다중마커를 하기 위한 서비스
	public List<BoardVO> boardMapViewMarkers() throws SQLException{
		return boardDao.boardMapViewMarkers();
	}
	// 아이디로 리플 전체 삭제하는 서비스 0511 임한희
	public void boardReplyAllDeleteById(String replywriter) throws SQLException{
		boardDao.boardReplyAllDeleteById(replywriter);
	}
	// 아이디로 게시글 전체 삭제하는 서비스 0511 임한희
	public void boardDeleteContentsById(String writer) throws SQLException{
		boardDao.boardDeleteContentsById(writer);
	}
	// 구글맵 주소로 해당 게시글 보는 서비스 0511 임한희
	public BoardVO boardGetContentByGpsinfo(String title) throws SQLException{
		BoardVO bvo = new BoardVO();
		bvo.setTitle(title);
		String no = boardDao.boardGetContentNoByGpsinfo(bvo);
		boardDao.boardUpdateCount(no);
		return boardDao.boardGetContentByGpsinfo(bvo);
	}
	// 매칭시 상대방 아이디로 게시글 리스트 가져오는 서비스 0514 임한희
	public ListVO boardGetListById(String writer) throws SQLException{
		List<BoardVO> list=boardDao.boardGetListById(writer);
		int total=boardDao.boardGetTotalContentsById(writer);
		PagingBean paging=new PagingBean(total,Integer.parseInt("1"));
		ListVO lvo=new ListVO(list,paging);
		return lvo;
	}
}
